%%
a=zeros(10,5,3);
b=rand(10,10);
c=randn(10,10);
d=randi([1,4],10,10);

%%
% 元胞数组
A=cell(1,6); % 相当于矩阵盒子
A{1}=eye(3);  % 对角数值为1
A{2}=magic(5); % 每行每列，主副对角线数值之和相同

%%
% 结构体
books=struct('name',{{'Machine Learning','Data Mining'}},'price',[30 40]);
books.name;  % 得到的是元胞数组
books.name(1); % 得到的是元胞数组
books.name{1}; % 得到的是字符串
%%
% 矩阵操作
A=[1 2 3 4 5 6 7 8 9 10];
B=1:3:9; % 相当于有步长arange
C=repmat(B,2,4);  % 先横向复制，再纵向复制
D=ones(2,4); % 全1矩阵



%%
% 矩阵运算
A=[1 2 3 4;5 6 7 8];
B=[1 1 2 2;2 2 1 1];
C=A+B;
D=A*B';
E=A.*B;  % .表示俩个矩阵对应元素进行运算
F=A/B;  % 相当于A*B的逆矩阵
[m,n]=find(A>3);  % 寻找A中元素大于3的横纵坐标m,n

%%
% 逻辑与流程控制
sum=0;
for n=1:5
    sum=sum+n^2;
end

sum=0;
n=1;
while n<=10
    sum=sum+n;
    n=n+1;
end

i=10;
switch i
    case 1
        i=i+100;
    otherwise
        i=i+1;
end

%%
% 绘制二维图像
x=0:0.01:2*pi;
y=sin(x);
figure
plot(x,y)
title('y=sin(x)')  % 取标题
xlabel('x')
ylabel('sin(x)')
xlim([0 2*pi])  % 限制x轴的范围

%%
x=0:0.01:20;
y1=200*exp(-0.05*x).*sin(x);
y2=0.8*exp(-0.5*x).*sin(10*x);
figure
yyaxis left
plot(x,y1)
ylabel('left y')
yyaxis right
plot(x,y2)
ylabel('right y')



%%
x = -2*pi:0.01:2*pi;
y1 = sin(x);
y2 = 10*cos(x);
%绘制左边y轴图形数据
yyaxis left
%修改设置线的颜色属性、线型属性、标记点类型属性、填充图形属性、标记点填充属性、
% 标记点标记位置属性、线宽属性、标记点大小属性
plot(x,y1,'Color','b','LineStyle','-',...
    'Marker','o','MarkerFaceColor','b','MarkerEdgeColor',[0.5,0.5,0.5],...
    'MarkerIndices',1:25:length(x),'LineWidth',2, 'MarkerSize',5);
xlabel('x');%设置x轴坐标名称
ylabel('y1');%设置左边y坐标轴名称
set(gca,'FontName','Times New Roman','FontSize',12);%修改字体为古罗马
set(gca,'YColor','K');% Y轴的颜色
%绘制右边y轴图形数据
yyaxis right
%修改设置线的颜色属性、线型属性、标记点类型属性、填充图形属性、标记点填充属性、
% 标记点标记位置属性、线宽属性、标记点大小属性
plot(x,y2,'Color','r','LineStyle','--',...
    'Marker','s','MarkerFaceColor','r','MarkerEdgeColor','r',...
    'MarkerIndices',1:25:length(x),'LineWidth',2, 'MarkerSize',10);
ylabel('y2');%设置右边y坐标轴名称
set(gca,'FontName','Times New Roman','FontSize',12);%修改字体为古罗马
set(gca,'YColor','K');% Y轴的颜色
legend('y1 = sin(x)','y2 = 10cos(x)','FontName','Times New Roman','FontSize',12);
grid on

%%
% 3D维图形绘制
t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
grid on  % hand on 表示可以继续在同一个幕布绘制图像，grad on 表示添加网格线
axis square % 使图形背面变为一个正方形



%%
clear;
x=-10:.02:10;
y=x;
Z=(x).^2+(y).^2;
subplot(1,2,1);
plot3(x,y,Z);
grid on;


subplot(1,2,2);
[xx,yy]=meshgrid(x,y);
ZZ=(xx).^2+(yy).^2;
mesh(xx,yy,ZZ);  % 

%%
clear
[x,y,z]=peaks(30);
mesh(x,y,z)
grid % 



%%


